function ContentManager(stage,width,height) {
	// Method called back once all elements have
	// been completed
	var ondownloadcompleted;
	var NUM_ELEMENTS_TO_DOWNLOAD =  5;
	var numElementsLoaded = 0;

	var downloadProgress;

	// triggered once everything is ready to be drawn on canvas
	this.SetDownloadCompleted = function(callbackMethod) {
		ondownloadcompleted = callbackMethod;
	};

	this.imgCharacter = new Image();
	this.imgBattery = new Image();
	this.imgTV = new Image();
	this.imgWorld0 = new Image();
	this.imgResistor = new Image();

	this.images = [];

	this.StartDownload = function() {
		//download progress

		downloadProgress = new Text("-- %", "bold 14px Arial","#FFF");
		downloadProgress.x = (width / 2) - 50;
		downloadProgress.y  = height / 2;
		stage.addChild(downloadProgress);

		SetDownloadParameters(this.imgCharacter,"images/char_anim.png");
		SetDownloadParameters(this.imgBattery,"images/battery.png");
		SetDownloadParameters(this.imgTV,"images/goal_device.png");
		SetDownloadParameters(this.imgWorld0,"images/bg0.png");
		SetDownloadParameters(this.imgResistor,"images/resistance.png");
		this.images["images/bg0.png"] = this.imgWorld0;
		Ticker.addListener(this);
		Ticker.setInterval(50);
	};

	this.GetImageByName = function(name) {
		return this.images[name];
	}

	function SetDownloadParameters(assetElement,url) {
		assetElement.src = url;
		assetElement.onload = handleElementLoad;
		assetElement.onerror = handleElementError;
	};

	function handleElementLoad(e) {
		numElementsLoaded++;
		if(numElementsLoaded === NUM_ELEMENTS_TO_DOWNLOAD) {
			stage.removeChild(downloadProgress);
			Ticker.removeAllListeners();
			numElementsLoaded = 0;
			ondownloadcompleted();
		}
	}

	function handleElementError(e) {
		console.log("Error Loading Asset : " + e.target.src);
	}

	this.tick = function() {
		downloadProgress.text = "Downloading " + Math.round((numElementsLoaded / NUM_ELEMENTS_TO_DOWNLOAD) * 100) + " %";

		stage.update();
	}


}